package render;

import javax.swing.ImageIcon;

import manager.ImageManager;

/**
 * @名称 帧
 * @author Passerby
 * @说明 在我们这个系统中帧是指一张图片和它
 *  的持续时间组成
 */
public class Frame {
//	图片的名字，因为图片是存储在ImageManager中的，故在此只需要存入名字
	private ImageIcon image;
//	帧的持续时间
	private int duration;
//	当前播放的位置
	private int cur_index;
	
	private static ImageManager imanager;
	
	public Frame(String imgName, int duration) {
		imanager = ImageManager.get();
		image = imanager.getImage(imgName);
		if (duration < 0) {
			duration = 0;
		}
		this.duration = duration;
		this.cur_index = 0;
	}
	
	/**
	 * @author Passerby
	 * @说明 播放一帧，负责将当前播放位置向前移动
	 * @return 若到帧末尾则返回false，否则返回true
	 */
	public boolean play() {
		cur_index++;
		if (cur_index >= duration) {
			reStart();
			return false;
		}
		return true;
	}
	
	/**
	 * @author Passerby
	 * @return 获得这帧对应的图片
	 */
	public ImageIcon getImage() {
		return image;
	}
	
	/**
	 * @author Passerby
	 * @说明 强制返回到帧开始的地方
	 */
	public void reStart() {
		cur_index = 0;
	}
}

